package com.STS.ELearning.views
{	
	import com.STS.ELearning.Classes.IcerikYoneticisi;
	
	import flash.desktop.NativeApplication;
	import flash.events.Event;
	
	import mx.containers.VBox;
	import mx.events.FlexEvent;
	import mx.messaging.events.MessageEvent;

	[Event(name="IcerikSayfasiKapaniyor",type="flash.events.Event")]
	public class IcerikSayfasi extends VBox
	{
		public static const ICERIK_SAYFASI_KAPANIYOR:String="IcerikSayfasiKapaniyor";
		protected var KapanisMesaji:String="";
		
		
		public function IcerikSayfasi()
		{
			super();
		}
		
		private var tekrarYuklenecek:IcerikSayfasi;
		
		protected function Tekraryukle(zorla:Boolean):void
		{
			if(tekrarYuklenecek!=null)
			{
				IcerikYoneticisi.getInstance().IcerikYukle(tekrarYuklenecek,zorla);
			}else
			{
				var exEv:Event=new Event(Event.EXITING,false,true);
				NativeApplication.nativeApplication.dispatchEvent(exEv);
			}
		}
		
		protected function iceriksayfasi1_initializeHandler(event:FlexEvent):void
		{
			IcerikYoneticisi.getInstance().addEventListener(IcerikYoneticisi.EICERIK_DEGISECEK,function(evt:MessageEvent):void
			{
				if(hasEventListener(ICERIK_SAYFASI_KAPANIYOR))
				{
					var ex:Event=new Event(ICERIK_SAYFASI_KAPANIYOR,false,true);
					dispatchEvent(ex);
					if(ex.isDefaultPrevented())
					{
					  tekrarYuklenecek=evt.message.body["YuklenecekIcerik"] as IcerikSayfasi;
					  evt.preventDefault();
					}
				}
			});
			NativeApplication.nativeApplication.activeWindow.addEventListener(Event.CLOSING,CikisKontrol);
			
		}
		protected function iceriksayfasi1_removeHandler(event:FlexEvent):void
		{
			NativeApplication.nativeApplication.activeWindow.removeEventListener(Event.CLOSING,CikisKontrol);
		}
		protected function CikisKontrol(evt:Event):void
		{
			if(hasEventListener(ICERIK_SAYFASI_KAPANIYOR))
			{
				tekrarYuklenecek=null;
				var ex:Event=new Event(ICERIK_SAYFASI_KAPANIYOR,false,true);
				dispatchEvent(ex);
				if(ex.isDefaultPrevented())
				{
					evt.preventDefault();
				}
				else
				{	
					NativeApplication.nativeApplication.activeWindow.removeEventListener(Event.CLOSING,CikisKontrol);
					var exEv:Event=new Event(Event.EXITING,false,true);
					NativeApplication.nativeApplication.dispatchEvent(exEv);
				}
			}
			
		}	
	}
}